// src/main/java/com/nb/service/DeptService.java
package com.nb.service;

import com.mybatisflex.core.paginate.Page;
import com.nb.dto.DeptCreateDTO;
import com.nb.dto.DeptStructureUpdateDTO;
import com.nb.dto.DeptUpdateDTO;
import com.nb.dto.DeptUserQueryDTO;
import com.nb.entity.Dept;
import com.nb.entity.User;
import com.nb.vo.DeptDetailVO;
import com.nb.vo.DeptTreeVO;

import java.util.List;

public interface DeptService {


    Long createDept(DeptCreateDTO deptCreateDTO);
    boolean updateDept(DeptUpdateDTO deptUpdateDTO);
    int deleteDept(Long id);
    Page<Dept> getDeptPage(Integer pageNum, Integer pageSize, String name, Long parentId);
    DeptDetailVO getDeptDetail(Long id);
    List<User> getUsersByDeptId(Long deptId);
    List<DeptTreeVO> getDeptTree();
    Page<User> getDeptUsers(DeptUserQueryDTO queryDTO);
    boolean batchUpdateStructure(DeptStructureUpdateDTO updateDTO);
}